package com.ruoyi.system.service.impl;

import com.ruoyi.system.domain.SysArgumentDocument;
import com.ruoyi.system.domain.SysInformation;
import com.ruoyi.system.mapper.SysArgumentDocumentMapper;
import com.ruoyi.system.service.ISysArgumentDocumentService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.math.BigDecimal;
import java.util.List;

@Service
public class SysArgumentDocumentServiceImpl implements ISysArgumentDocumentService {

    @Autowired
    private SysArgumentDocumentMapper sysArgumentDocumentMapper;

    /**
     * 获取论证文件列表
     * @param itemNo 项目编号
     * @return 结果
     */
    @Override
    public List<SysInformation> selectDocumentList(String itemNo) {
        return sysArgumentDocumentMapper.selectDocumentList(itemNo);
    }

    /**
     * 添加论证文件信息
     * @param sysArgumentDocument 论证文件信息
     * @return 结果
     */
    @Override
    public int updateArgInformation(SysArgumentDocument sysArgumentDocument) {
        String itemNo = sysArgumentDocument.getItemNo();
        String documentInformation = sysArgumentDocument.getDocumentInformation();
        //查询该项目类型下的文件是否为第一个
        int num = sysArgumentDocumentMapper.selectNum(itemNo,documentInformation);
        //如果是第一个，默认版本1.0
        if (num == 0){
            sysArgumentDocument.setEdition("1.0");
            return sysArgumentDocumentMapper.updateArgInformation(sysArgumentDocument);
        }else {
            //查询最大版本
            String maxEdition = sysArgumentDocumentMapper.selectMaxEdition();
            //新增下一个版本默认增加0.1
            double NextEdition = Double.valueOf(maxEdition) + 0.1;
            BigDecimal bigDecimal = new BigDecimal(NextEdition);
            NextEdition = bigDecimal.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
            //转string给前端
            String edition = String.valueOf(NextEdition);
            sysArgumentDocument.setEdition(edition);
            return sysArgumentDocumentMapper.updateArgInformationAdd(sysArgumentDocument);
        }
    }


    /**
     * 上传文件
     * @param sysArgumentDocument 论证文件信息
     * @return 结果
     */
    @Override
    public Long insertFileUpload(SysArgumentDocument sysArgumentDocument) {
        //如果库里不存在该id的文件，则文件信息入库
        sysArgumentDocumentMapper.insertFileUpload(sysArgumentDocument);
        return sysArgumentDocument.getId();
    }

    /**
     * 论证文件删除
     * @param id
     * @return 结果
     */
    @Override
    public int deleteArgByIds(Long[] id) {
        return sysArgumentDocumentMapper.deleteArgByIds(id);
    }


    /**
     * 论证文件信息修改
     * @param sysArgumentDocument
     * @return 结果
     */
    @Override
    public int updateInformation(SysArgumentDocument sysArgumentDocument) {
        return sysArgumentDocumentMapper.updateInformation(sysArgumentDocument);
    }

}
